
#ifndef GENERIC_TABLE_H

#define GENERIC_TABLE_H

#define INIT_TABLE_ENTRIES 16

template <typename DataType> class GenericTable  
{
public:
	GenericTable();
	~GenericTable();
	bool Add(DataType * data);
	bool Insert(DataType * data, int index);
	int GetCount();
	bool RemoveAt(int index);
	bool RemoveAtWithoutFreeMem(int index);
	DataType * GetData(int index);

private:
	DataType ** table;
	int tableSize;
	int tableExpandedSize;
	void ChangeTableToSize(int size);
};

#endif
